

/*! \file ntfs_index_root.h
 *  \brief 
 */

#ifndef __NTFS__INDEX__ROOT__
#define __NTFS__INDEX__ROOT__

#define NTFS_INDEX_ROOT_MAXIMUM_SIZE    NTFS_MFT_FILE_SIZE / 2

PINDEX_ROOT 
ntfs_index_root_get_from_mft( 
                                IN PFILE_RECORD_SEGMENT_HEADER p_root_mft \
                            );

bool 
ntfs_index_root_find_entry(     
                               IN  PINDEX_ROOT     p_root,            \
                               IN  PNTFS_CONTEXT   p_context,         \
                               IN  PINDEX_ENTRY    p_search_entry,    \
                               IN  bool            b_is_skip,         \
                               OUT PINDEX_ENTRY*   p_found            \
                           );
bool 
ntfs_index_root_insert_entry( 
                                 IN PINDEX_ROOT     p_root,         \
                                 IN PNTFS_CONTEXT   p_context,      \
                                 IN PINDEX_ENTRY    p_new_entry,    \
                                 IN PINDEX_ENTRY    p_insert_point  \
                             );

void
ntfs_index_root_remove_entry( 
                                 IN PINDEX_ROOT p_root,         \
                                 IN PINDEX_ENTRY p_entry_remove \
                             );

/*PINDEX_ROOT ntfs_index_root_get();*/

#endif